﻿# -*- coding: utf-8 -*-
from django.db import models
from Colaboradores.models import Colaborador
from django.core.urlresolvers import reverse
from thumbs import ImageWithThumbsField
import datetime

CATEGORIAS_CHOICES = (('1','Posicao 2'),('2','Posicao 3'),('3','Posicao 4(Esquerda)'),('4','Posicao 4(Direita)'),('5','Resumo da Semana'),('6','Ultimas (Esquerdo)'),('7','Ultimas (Direito)'))
def content_image_name(instance, filename):
    return '/'.join(['arquivos', str(instance.nomecategoria.slugcategoria), filename])
class Categoria(models.Model):
    nome = models.CharField(max_length=30)
    slugcategoria = models.SlugField(max_length=100, blank=True, unique=True)
    descricao = models.TextField(blank=True, null=True)
    
    def __unicode__(self):
        return self.nome
    def get_absolute_url(self):
        return reverse('Scope.views.categoria', kwargs={'slugcategoria': self.slugcategoria})

class GaleriaFotos(models.Model):
    titulo = models.CharField('Título',max_length=50)
    imagem = models.ImageField(upload_to='arquivos/galeria')
    data = models.DateTimeField('Data de publicação',auto_now_add=True)
    autor = models.CharField(max_length=50)
    descricao = models.TextField('Descricao')

    class Meta:
        verbose_name_plural = 'Galeria de imagens'
    def __unicode__(self):
        return self.titulo

class Noticia(models.Model):
    publicar = models.BooleanField(default=True)
    manchete = models.BooleanField(default=False)
    titulo = models.CharField(max_length=100, unique=True)
    subtitulo = models.CharField(max_length=200)
    chamada = models.CharField(max_length=50)
    conteudo = models.TextField(blank=True, null=True)
    nomecategoria = models.ForeignKey(Categoria)
    datapublicacao = models.DateTimeField(auto_now_add=True)
    fonte = models.CharField(max_length=20, blank=True, null=True)
    imagemDestaque = ImageWithThumbsField('Imagem Destaque', upload_to=content_image_name, sizes=((620,465),(190,142)))
    usarVideo = models.BooleanField(default=False)
    video = models.URLField(null=True, blank=True, verify_exists=False)
    descricaovideo = models.CharField(max_length=500, blank=True, null=True)
    usarGaleria = models.BooleanField(default=False)
    galeria = models.ManyToManyField(GaleriaFotos, null=True, blank=True)
    slugnoticia = models.SlugField(max_length=200, blank=True, unique=True)
    autor = models.ForeignKey(Colaborador)
    hits = models.IntegerField('Cliques', default=0, editable=False)

    def __unicode__(self):
        return self.titulo

    def get_absolute_url(self):
        return reverse('Scope.views.noticiainterna', kwargs={'slugnoticia': self.slugnoticia, 'slugcategoria':self.nomecategoria.slugcategoria})

class Video(models.Model):
    publicar = models.BooleanField(default=True)
    titulo = models.CharField(max_length=100)
    subtitulo = models.CharField(max_length=300)
    chamada = models.CharField(max_length=100)
    descricao = models.TextField(blank=True, null=True)
    imagem = ImageWithThumbsField('Imagem', upload_to='arquivos/videos/', sizes=((220,165),(290,218)))
    url = models.URLField(verify_exists=False)
    datapublicacao = models.DateTimeField(auto_now_add=True)
    slug = models.SlugField(max_length=200, blank=True, unique=True)

    def __unicode__(self):
        return self.titulo
    def get_absolute_url(self):
        return reverse('Scope.views.videointerna', kwargs={'slugvideo': self.slugvideo})

# SIGNALS
from django.db.models import signals
from django.template.defaultfilters import slugify

def noticia_pre_save(signal, instance, sender, **kwargs):
    """
    Estamos gerando uma nova slug para evitar duplicidade
    """
    if not instance.slugnoticia:
        slug = slugify(instance.titulo)
        novaslug = slug
        contador = 0

        while  Noticia.objects.filter(slugnoticia = novaslug).exclude(id=instance.id).count() > 0:
            contador += 1
            novaslug = '%s-%d'%(slug, contador)
        instance.slugnoticia = novaslug
signals.pre_save.connect(noticia_pre_save, sender=Noticia)

def video_pre_save(signal, instance, sender, **kwargs):
    """
    Estamos gerando uma nova slug para evitar duplicidade
    """
    if not instance.slug:
        slug = slugify(instance.titulo)
        novaslug = slug
        contador = 0

        while  Video.objects.filter(slug = novaslug).exclude(id=instance.id).count() > 0:
            contador += 1
            novaslug = '%s-%d'%(slug, contador)
        instance.slug = novaslug
signals.pre_save.connect(video_pre_save, sender=Video)

def categoria_pre_save(signal, instance, sender, **kwargs):
    instance.slugcategoria = slugify(instance.nome)

signals.pre_save.connect(categoria_pre_save, sender=Categoria)